/**
 * 
 */
package org.mspring.mlog.service.search;

import java.io.Serializable;

import org.hibernate.search.FullTextSession;
import org.mspring.platform.dao.support.Page;

/**
 * @author Gao Youbo
 * @since 2013-1-9
 * @Description
 * @TODO
 */
@SuppressWarnings("rawtypes")
public interface BaseSearch<T> {

    public FullTextSession getFullTextSession();

    /**
     * 更新索引
     * 
     * @param id
     */
    void updateIndex(Serializable id);

    /**
     * 更新所有索引
     * 
     * @param clazz
     */
    void updateAllIndex();

    /**
     * 更新索引
     * 
     * @param clazz
     */
    void updateAllIndex(int batchSize);

    /**
     * 查询结果，并将结果封装到Page对象中
     * 
     * @param page
     * @param text
     * @param fields
     * @return
     */
    Page listPage(Page page, String text, String... fields);
}
